{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b971af08",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Copyright 2022 NVIDIA Corporation. All Rights Reserved.\n",
    "#\n",
    "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
    "# you may not use this file except in compliance with the License.\n",
    "# You may obtain a copy of the License at\n",
    "#\n",
    "#     http://www.apache.org/licenses/LICENSE-2.0\n",
    "#\n",
    "# Unless required by applicable law or agreed to in writing, software\n",
    "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
    "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
    "# See the License for the specific language governing permissions and\n",
    "# limitations under the License.\n",
    "# =============================================================================="
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c6384192",
   "metadata": {},
   "source": [
    "<img src=\"http://developer.download.nvidia.com/notebooks/dlsw-notebooks/tensorrt_torchtrt_qat_ptq_workflow/nvidia_logo.png\" width=\"90px\">\n",
    "\n",
    "# Accelerate Deep Learning Models using Torch-TensorRT "
   ]
  },
  {
   "attachments": {
    "img1.JPG": {
     "image/jpeg": "/9j/4AAQSkZJRgABAQEAeAB4AAD/4RDuRXhpZgAATU0AKgAAAAgABAE7AAIAAAAMAAAISodpAAQAAAABAAAIVpydAAEAAAAYAAAQzuocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFubmllIFN1cmxhAAAFkAMAAgAAABQAABCkkAQAAgAAABQAABC4kpEAAgAAAAM5NgAAkpIAAgAAAAM5NgAA6hwABwAACAwAAAiYAAAAABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAyMjowNjowNiAxNDo0MTozOQAyMDIyOjA2OjA2IDE0OjQxOjM5AAAAQQBuAG4AaQBlACAAUwB1AHIAbABhAAAA/+ELHmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6ZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMjItMDYtMDZUMTQ6NDE6MzkuOTYzPC94bXA6Q3JlYXRlRGF0ZT48L3JkZjpEZXNjcmlwdGlvbj48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0b3I+PHJkZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj48cmRmOmxpPkFubmllIFN1cmxhPC9yZGY6bGk+PC9yZGY6U2VxPg0KCQkJPC9kYzpjcmVhdG9yPjwvcmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0n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Jj+ckjJxnv6VGqhpvZffYrTm17/gU9f8S6lP4W8PXi6vZ+H7TUYkkvtQndAYgUztjViMsTx3xWT4H8Xy3HxFbw/aeJ5fEmmz2L3C3M0IVonVgpUMBhhz+FX9Q8B69CvhTUNIbTLrUNCtDbPaahuMEmVALqwGVYY4OO9WbDwr4tb4i2vinWrvTZFjsJLU2dsHRYcsGXaxyXyQck47YFae7zvtr+Tt+hH2TD1DxT4p0PXp/BHnPd6pqUu/S9RkxhISfmLY7p29a9VsLeW006C3uLmS6ljjCvPJjdIe5OK88k+GV9q1lqOqa1dwr4puJhNaXcDEpZ7D+7RCQDt9eOa7/STqH9kW39tLAt+IwJ/s7Foy/cqSAcfhUr4bPf8Ar+mD30/r+uhcooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAbJGk0bRyqGRwQykcEVFY2NrptlFZ2EEdvbQrtjijXCqPQCiigCeiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqtcabZXV7bXdzaxS3FqS0ErLloiRgkHtkHFFFAFmiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//2Q=="
    }
   },
   "cell_type": "markdown",
   "id": "f5454823",
   "metadata": {},
   "source": [
    "## Overview\n",
    "\n",
    "Deep Learning has touched almost every industry and has transformed the way industries operate and provide services. We perform or experience real-time analytics all the time around us, for example, an advertisement that you saw while swiping through the stories on Instagram, or the video recommendation that floated on your youtube home screen. To cater to these real-time inferences, deep learning practitioners need to maximise model throughput while having highly accurate predictions. Quantization amongst many techniques employed, let's have a look at how it can be used to accelerate models.\n",
    "\n",
    "Model Quantization is a popular way of optimization which reduces the size of models thereby accelerating inference, also opening up the possibilities of deployments on devices with lower computation power such as Jetson. Simply put, quantization is a process of mapping input values from a larger set to output values in a smaller set. In the context of deep learning, we often train deep learning models using floating-point 32 bit arithmetic (FP32) as we can take advantage of a wider range of numbers, catering to higher precision. The model data–network parameters and activations–are converted from this floating point representation to a lower precision representation, typically using 8-bit integers (int8). In the case of int8, the range [qmin, qmax] would be [-128, 127].\n",
    "\n",
    "![img1.JPG](attachment:img1.JPG)\n",
    "\n",
    "A quick rationale of how quantization's throughput is acheived by the following thought experiment: Imagine the complexity of multiplying 3.999x2.999 and 4x3. The latter is easier to perform than the former. This is the simplicity in calculation seen by quantizing the numbers to lower precision. But the challenge here is that this rounding off can result in a lower accuracy model. To address this loss of accuracy, different quantization techniques have been developed. These techniques can be classified into two categories, post-training quantization (PTQ) and quantization-aware training (QAT).\n",
    "\n",
    "In this notebook, we illustrate the workflow that you can adopt while quantizing a deep learning model in Torch-TensorRT. The notebook takes you through an example of Mobilenetv2 for a classification task on a subset of Imagenet Dataset called Imagenette which has 10 classes.  \n",
    "\n",
    "1. [Requirements](#1)\n",
    "2. [Setup a baseline Mobilenetv2 model](#2)\n",
    "3. [Convert to Torch TRT](#3)\n",
    "4. [Post Training Quantization (PTQ)](#4)\n",
    "4. [Quantization Aware training](#4)\n",
    "5. [Export to Torchscript](#5)\n",
    "6. [Inference using Torch-TensorRT](#6)\n",
    "7. [References](#7)\n",
    "\n",
    "This notebook is implemented using the NGC pytorch container nvcr.io/nvidia/pytorch:22.04-py3. Follow instructions here https://ngc.nvidia.com/setup/api-key to setup your own API key to use the NGC service through the Docker client. "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "06b37d07",
   "metadata": {},
   "source": [
    "<a id=\"1\"></a>\n",
    "##  1. Requirements\n",
    "Please install the <a href=\"https://github.com/NVIDIA/Torch-TensorRT/tree/master/examples/int8/training/vgg16#prequisites\">required dependencies</a> and import these libraries accordingly"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "0a068b12",
   "metadata": {},
   "outputs": [],
   "source": [
    "!pip install ipywidgets --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org\n",
    "!pip install wget"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "4e2e58b2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.1.2\n"
     ]
    }
   ],
   "source": [
    "import torch\n",
    "import torch.backends.cudnn as cudnn\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "import torch.optim as optim\n",
    "import torch.utils.data as data\n",
    "import torchvision.transforms as transforms\n",
    "from torchvision import models, datasets\n",
    "import torch_tensorrt\n",
    "\n",
    "\n",
    "import pytorch_quantization\n",
    "from pytorch_quantization import nn as quant_nn\n",
    "from pytorch_quantization import quant_modules\n",
    "from pytorch_quantization import calib\n",
    "from tqdm import tqdm\n",
    "\n",
    "print(pytorch_quantization.__version__)\n",
    "\n",
    "import os\n",
    "import warnings\n",
    "import time\n",
    "import numpy as np\n",
    "import wget\n",
    "import tarfile\n",
    "warnings.simplefilter('ignore')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0575e590",
   "metadata": {},
   "source": [
    "<a id=\"2\"></a>\n",
    "##  2. Setup a baseline Mobilenetv2 Model"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a83b886f",
   "metadata": {},
   "source": [
    "#### Preapring the Dataset\n",
    "\n",
    "Imagenette is a subset of ImageNet and has 10 classes. The classes are as follows in the order of their labels : 'tench', 'English springer', 'cassette player', 'chain saw', 'church', 'French horn', 'garbage truck', 'gas pump', 'golf ball' and 'parachute'. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "60cead9d",
   "metadata": {},
   "outputs": [],
   "source": [
    "def download_data(DATA_DIR):\n",
    "    if os.path.exists(DATA_DIR):\n",
    "        if not os.path.exists(os.path.join(DATA_DIR, 'imagenette2-320')):\n",
    "            url = 'https://s3.amazonaws.com/fast-ai-imageclas/imagenette2-320.tgz'\n",
    "            wget.download(url)\n",
    "            # open file\n",
    "            file = tarfile.open('imagenette2-320.tgz')\n",
    "            # extracting file\n",
    "            file.extractall(DATA_DIR)\n",
    "            file.close()\n",
    "    else:\n",
    "        print(\"This directory doesn't exist. Create the directory and run again\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "bfb55992",
   "metadata": {},
   "outputs": [],
   "source": [
    "if not os.path.exists(\"./data\"):\n",
    "    os.mkdir(\"./data\")\n",
    "download_data(\"./data\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "07d1fc63",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define main data directory\n",
    "DATA_DIR = './data/imagenette2-320'\n",
    "# Define training and validation data paths\n",
    "TRAIN_DIR = os.path.join(DATA_DIR, 'train')\n",
    "VAL_DIR = os.path.join(DATA_DIR, 'val')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "acd3cd99",
   "metadata": {},
   "outputs": [],
   "source": [
    "#Performing Transformations on the dataset and defining training and validation dataloaders\n",
    "transform = transforms.Compose([\n",
    "            transforms.Resize(256),\n",
    "            transforms.CenterCrop(224),\n",
    "            transforms.ToTensor(),\n",
    "            ])\n",
    "train_dataset = datasets.ImageFolder(TRAIN_DIR, transform=transform)\n",
    "val_dataset = datasets.ImageFolder(VAL_DIR, transform=transform)\n",
    "calib_dataset = torch.utils.data.random_split(val_dataset, [2901, 1024])[1]\n",
    "\n",
    "train_dataloader = data.DataLoader(train_dataset, batch_size=32, shuffle=True, drop_last=True)\n",
    "val_dataloader = data.DataLoader(val_dataset, batch_size=64, shuffle=False, drop_last=True)\n",
    "calib_dataloader = data.DataLoader(calib_dataset, batch_size=64, shuffle=False, drop_last=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a2f8914c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor(0)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualising an image from the validation set\n",
    "import matplotlib.pyplot as plt\n",
    "for images, labels in val_dataloader:\n",
    "    print(labels[0])\n",
    "    image = images[0]\n",
    "    img = image.swapaxes(0, 1)\n",
    "    img = img.swapaxes(1, 2)\n",
    "    plt.imshow(img)\n",
    "    break"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4b7441e6",
   "metadata": {},
   "source": [
    "#### Setting up Mobilenetv2\n",
    "\n",
    "Mobilenetv2 available in Torchvision is pretrained on the ImageNet that has 1000 classes. The Imagenette dataset has 10 classes. \n",
    "We set up this model by freezing the weights excpet for the last classification layer and train only the last classification layer to be able to predict the 10 classes of the dataset. "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b9577f2a",
   "metadata": {},
   "source": [
    "*Define the Mobilenetv2 model*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "c29ae7b8",
   "metadata": {},
   "outputs": [],
   "source": [
    "#This function allows you to set the all the parameters to not have gradients,\n",
    "#allowing you to freeze the model and not undergo training during the train step.\n",
    "def set_parameter_requires_grad(model, feature_extracting):\n",
    "    if feature_extracting:\n",
    "        for param in model.parameters():\n",
    "            param.requires_grad = False\n",
    "\n",
    "feature_extract = True #This varaible can be set False if you want to finetune the model by updating all the parameters.\n",
    "model = models.mobilenet_v2(pretrained=True)\n",
    "set_parameter_requires_grad(model, feature_extract)\n",
    "#Define a classification head for 10 classes.\n",
    "model.classifier[1] = nn.Linear(1280, 10)\n",
    "model = model.cuda()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "5c03df98",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Declare Learning rate\n",
    "lr = 0.0001\n",
    "\n",
    "# Use cross entropy loss for classification and SGD optimizer\n",
    "criterion = nn.CrossEntropyLoss()\n",
    "optimizer = optim.SGD(model.parameters(), lr=lr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "8470846e",
   "metadata": {},
   "outputs": [],
   "source": [
    "#Define functions for training, evalution, saving checkpoint and train parameter setting function\n",
    "def train(model, dataloader, crit, opt, epoch):\n",
    "    model.train()\n",
    "    running_loss = 0.0\n",
    "    for batch, (data, labels) in enumerate(dataloader):\n",
    "        data, labels = data.cuda(), labels.cuda(non_blocking=True)\n",
    "        opt.zero_grad()\n",
    "        out = model(data)\n",
    "        loss = crit(out, labels)\n",
    "        loss.backward()\n",
    "        opt.step()\n",
    "        running_loss += loss.item()\n",
    "        if batch % 100 == 99:\n",
    "            print(\"Batch: [%5d | %5d] loss: %.3f\" % (batch + 1, len(dataloader), running_loss / 100))\n",
    "            running_loss = 0.0\n",
    "\n",
    "def evaluate(model, dataloader, crit, epoch):\n",
    "    total = 0\n",
    "    correct = 0\n",
    "    loss = 0.0\n",
    "    class_probs = []\n",
    "    class_preds = []\n",
    "    model.eval()\n",
    "    with torch.no_grad():\n",
    "        for data, labels in dataloader:\n",
    "            data, labels = data.cuda(), labels.cuda(non_blocking=True)\n",
    "            out = model(data)\n",
    "            loss += crit(out, labels)\n",
    "            preds = torch.max(out, 1)[1]\n",
    "            class_probs.append([F.softmax(i, dim=0) for i in out])\n",
    "            class_preds.append(preds)\n",
    "            total += labels.size(0)\n",
    "            correct += (preds == labels).sum().item()\n",
    "\n",
    "    evaluate_probs = torch.cat([torch.stack(batch) for batch in class_probs])\n",
    "    evaluate_preds = torch.cat(class_preds)\n",
    "\n",
    "    return loss / total, correct / total\n",
    "\n",
    "def save_checkpoint(state, ckpt_path=\"checkpoint.pth\"):\n",
    "    torch.save(state, ckpt_path)\n",
    "    print(\"Checkpoint saved\")\n",
    "\n",
    "cudnn.benchmark = True\n",
    "# Helper function to benchmark the model\n",
    "def benchmark(model, input_shape=(1024, 1, 32, 32), dtype='fp32', nwarmup=50, nruns=1000):\n",
    "    input_data = torch.randn(input_shape)\n",
    "    input_data = input_data.to(\"cuda\")\n",
    "    if dtype=='fp16':\n",
    "        input_data = input_data.half()\n",
    "\n",
    "    with torch.no_grad():\n",
    "        for _ in range(nwarmup):\n",
    "            features = model(input_data)\n",
    "    torch.cuda.synchronize()\n",
    "\n",
    "    timings = []\n",
    "    with torch.no_grad():\n",
    "        for i in range(1, nruns+1):\n",
    "            start_time = time.time()\n",
    "            output = model(input_data)\n",
    "            torch.cuda.synchronize()\n",
    "            end_time = time.time()\n",
    "            timings.append(end_time - start_time)\n",
    "    print('Average batch time: %.2f ms'%(np.mean(timings)*1000))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "02a625c9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: [    1 /     3] LR: 0.000100\n",
      "Batch: [  100 |   295] loss: 2.367\n",
      "Batch: [  200 |   295] loss: 2.271\n",
      "Test Loss: 0.03319 Test Acc: 28.71%\n",
      "Epoch: [    2 /     3] LR: 0.000100\n",
      "Batch: [  100 |   295] loss: 2.110\n",
      "Batch: [  200 |   295] loss: 2.023\n",
      "Test Loss: 0.02954 Test Acc: 56.79%\n",
      "Epoch: [    3 /     3] LR: 0.000100\n",
      "Batch: [  100 |   295] loss: 1.884\n",
      "Batch: [  200 |   295] loss: 1.816\n",
      "Test Loss: 0.02633 Test Acc: 75.56%\n",
      "Checkpoint saved\n"
     ]
    }
   ],
   "source": [
    "# Train the model for 3 epochs to attain an acceptable accuracy.\n",
    "num_epochs=3\n",
    "for epoch in range(num_epochs):\n",
    "    print('Epoch: [%5d / %5d] LR: %f' % (epoch + 1, num_epochs, lr))\n",
    "\n",
    "    train(model, train_dataloader, criterion, optimizer, epoch)\n",
    "    test_loss, test_acc = evaluate(model, val_dataloader, criterion, epoch)\n",
    "\n",
    "    print(\"Test Loss: {:.5f} Test Acc: {:.2f}%\".format(test_loss, 100 * test_acc))\n",
    "\n",
    "save_checkpoint({'epoch': epoch + 1,\n",
    "                 'model_state_dict': model.state_dict(),\n",
    "                 'acc': test_acc,\n",
    "                 'opt_state_dict': optimizer.state_dict()\n",
    "                },\n",
    "                ckpt_path=\"mobilenetv2_base_ckpt\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "411d0ebc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mobilenetv2 Baseline accuracy: 75.56%\n",
      "Average batch time: 11.92 ms\n"
     ]
    }
   ],
   "source": [
    "#Evaluate and benchmark the performance of the baseline model\n",
    "test_loss, test_acc = evaluate(model, val_dataloader, criterion, 0)\n",
    "print(\"Mobilenetv2 Baseline accuracy: {:.2f}%\".format(100 * test_acc))\n",
    "\n",
    "benchmark(model, input_shape=(64, 3, 224, 224))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "71fdd581",
   "metadata": {},
   "source": [
    "<a id=\"3\"></a>\n",
    "### Convert to Torch TRT\n",
    "\n",
    "Torch-TensorRT is a compiler which converts Torchscript graphs into TensorRT helping to levergae the inference optimizations on NVIDIA GPUs. Unlike PyTorch's Just-In-Time (JIT) compiler, Torch-TensorRT is an Ahead-of-Time (AOT) compiler, meaning that before you deploy your TorchScript code, you go through an explicit compile step to convert a standard TorchScript program into a module targeting TensorRT engine. With just one line of code, it provides a simple API that gives a performance speedup on NVIDIA GPUs. "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f75ab9fd",
   "metadata": {},
   "source": [
    "Let us convert the above FP32 Mobilenetv2 into a TensorRT engine. Before we do that, we need to first export our model to TorchScript. To learn more about Torchscript, please refer to https://pytorch.org/docs/stable/jit.html. The model will then be evaluated and benchmarked for performance so we can compare these numbers against the quantized int8 model later. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "e24451cf",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Exporting to TorchScript\n",
    "with torch.no_grad():\n",
    "    data = iter(val_dataloader)\n",
    "    images, _ = data.next()\n",
    "    jit_model = torch.jit.trace(model, images.to(\"cuda\"))\n",
    "    torch.jit.save(jit_model, \"mobilenetv2_base.jit.pt\")\n",
    "\n",
    "#Loading the Torchscript model and compiling it into a TensorRT model\n",
    "baseline_model = torch.jit.load(\"mobilenetv2_base.jit.pt\").eval()\n",
    "compile_spec = {\"inputs\": [torch_tensorrt.Input([64, 3, 224, 224])]\n",
    "               , \"enabled_precisions\": torch.float\n",
    "               }\n",
    "trt_base = torch_tensorrt.compile(baseline_model, **compile_spec)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "f3fd416f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mobilenetv2 TRT Baseline accuracy: 75.59%\n",
      "Average batch time: 6.78 ms\n"
     ]
    }
   ],
   "source": [
    "# Evaluate and benchmark the performance of the baseline TRT model (TRT FP32 Model)\n",
    "test_loss, test_acc = evaluate(trt_base, val_dataloader, criterion, 0)\n",
    "print(\"Mobilenetv2 TRT Baseline accuracy: {:.2f}%\".format(100 * test_acc))\n",
    "\n",
    "benchmark(trt_base, input_shape=(64, 3, 224, 224))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0a079b97",
   "metadata": {},
   "source": [
    "<a id=\"4\"></a>\n",
    "##  4. Post Training Quantization (PTQ)"
   ]
  },
  {
   "attachments": {
    "img4.JPG": {
     "image/jpeg": "/9j/4AAQSkZJRgABAQEAeAB4AAD/4RDuRXhpZgAATU0AKgAAAAgABAE7AAIAAAAMAAAISodpAAQAAAABAAAIVpydAAEAAAAYAAAQzuocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFubmllIFN1cmxhAAAFkAMAAgAAABQAABCkkAQAAgAAABQAABC4kpEAAgAAAAM4NAAAkpIAAgAAAAM4NAAA6hwABwAACAwAAAiYAAAAABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAyMjowNjoxMyAxMDo0MDowNgAyMDIyOjA2OjEzIDEwOjQwOjA2AAAAQQBuAG4AaQBlACAAUwB1AHIAbABhAAAA/+ELHmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6ZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMjItMDYtMTNUMTA6NDA6MDYuODQxPC94bXA6Q3JlYXRlRGF0ZT48L3JkZjpEZXNjcmlwdGlvbj48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0b3I+PHJkZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj48cmRmOmxpPkFubmllIFN1cmxhPC9yZGY6bGk+PC9yZGY6U2VxPg0KCQkJPC9kYzpjcmVhdG9yPjwvcmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0ndyc/Pv/bAEMABwUFBgUEBwYFBggHBwgKEQsKCQkKFQ8QDBEYFRoZGBUYFxseJyEbHSUdFxgiLiIlKCkrLCsaIC8zLyoyJyorKv/bAEMBBwgICgkKFAsLFCocGBwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKv/AABEIALYCnAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APpGiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACq9/dGy0+e5C7zEhbbnGcVYqnq8Mlxo91DCu+R4yFUdzWVZyVOTjvZl00nNJ7FGHWroXFol7ZJFHd8Rsku45xnkYqe01pL3V3s4Y28tY94lbjdzjgenvSaXodlZJFMtqEuQgDMWLYPfqcD8KUWsw8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TwcwQQKRHGf7xzyTXeUVR1jVoNF0uS9uUmkVMARwRl3djwFAHUmiEIU48sVZAklojN8WeErXxTZRrJK1td25LW9wgGVPoR3B9K42H4X6zcTeTqWq2sdpnDtao3mOvtu4FdL4N8W3viDw/qupapp5tJbG+uIBaxjc4WPoD1y30rHk8W+L9N0rT/EOtWWmw6XeTQo+nKsgurdZWCrlicMw3DK7R35qJ4elVkpTim9Px2FKKerW36Hd6Zp1tpGmQWFjH5cFugRF9h3PqatVwvjLUvGWgwX+rW2qeH7fSbddyJc2c0kx4AC5WQAsW4AA7iui8KT63c+GLOfxTFbQ6pKm+aK2UqiZ6DBJOQOvPWtlqVsbFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAGV4ii16bSwvha5sba+8wHffRNJHs5yMKQc9KdpEerxaGq+I57S41ABvMks42SM+mAxJ/WtOigDzzwl4gsvC3wbbWtTbbbWZnd8dT+9YAD3JIH41jeD/ABl4X8UeK7PVdb8R2V3rcmY9M0yEsY7MMOccfNIRwWPToK9cooWjDpY8O1CDwrPda4/j9Jh4tNzILLIkEpjB/cfZwvBHTp3zmvXPC7ai3hTTG1sEagbZPtAIwd+Oc+9atFC0VgeruFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAcJ4GvrfTNG8W317IIre212/llc/wqrZJ/IVyWkfEfwn4z8QWep+IvENpBDDOG0vRvmJEmcLJLxgvzwvQZ9a9oooWlvJL8Byd7+dzivFa/2x4+8M6FIN1tE0mpzoRw5iwIwfo7A/hXa0UUdLCCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/Z"
    }
   },
   "cell_type": "markdown",
   "id": "bf3d4397",
   "metadata": {},
   "source": [
    "As the name suggests, PTQ is the technique that is performed on a trained model that has achieved acceptable accuracy. It is effective and also quick to implement because it does not require any retraining of the network. Now that we have the trained checkpoint ready, let's start quantizing the model. \n",
    "\n",
    "To now perform an optimized PTQ technique, we often use calibration by passing calibration data, a subset of training or validation data to determine the range of representable FP32 values to be quantized. This gives us the scale that can be used to map the values to the quantized range. We call this process of choosing the input range \"Calibration\". The three popular techniques used to calibrate are:\n",
    "\n",
    "- Min-Max: Use the minimum and maximum of the FP32 values seen during calibration. The disadvantage with this method is that, if there is an outlier, our mapping can induce a larger rounding error. \n",
    "\n",
    "- Entropy: Not all values in the FP32 tensor may be equally important. Hence using cross entropy with different range values [T1, T2], we try to minimize the information loss between the original FP32 tensor and quantized tensor. \n",
    "\n",
    "- Percentile: Use the percentile of the distribution of absolute values seen during calibration. Say, at 99% calibration, we clip 1% of the largest magnitude values, and determine [P1, P2] as the representable range to be quantized\n",
    "\n",
    "\n",
    "![img4.JPG](attachment:img4.JPG)\n",
    "\n",
    "\n",
    "Torch-TensorRT Python API provides an easy and convenient way to use pytorch dataloaders with TensorRT calibrators.\n",
    "Here we use `min-max` calibration technique"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "06744b5d",
   "metadata": {},
   "outputs": [],
   "source": [
    "calibrator = torch_tensorrt.ptq.DataLoaderCalibrator(calib_dataloader,\n",
    "                                              use_cache=False,\n",
    "                                              algo_type=torch_tensorrt.ptq.CalibrationAlgo.MINMAX_CALIBRATION,\n",
    "                                              device=torch.device('cuda:0'))\n",
    "\n",
    "compile_spec = {\n",
    "         \"inputs\": [torch_tensorrt.Input([64, 3, 224, 224])],\n",
    "         \"enabled_precisions\": torch.int8,\n",
    "         \"calibrator\": calibrator,\n",
    "        \"truncate_long_and_double\": True\n",
    "\n",
    "     }\n",
    "trt_ptq = torch_tensorrt.compile(baseline_model, **compile_spec)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "a5ec3a81",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mobilenetv2 PTQ accuracy: 71.41%\n",
      "Average batch time: 1.57 ms\n"
     ]
    }
   ],
   "source": [
    "# Evaluate the PTQ model\n",
    "test_loss, test_acc = evaluate(trt_ptq, val_dataloader, criterion, 0)\n",
    "print(\"Mobilenetv2 PTQ accuracy: {:.2f}%\".format(100 * test_acc))\n",
    "\n",
    "benchmark(trt_ptq, input_shape=(64, 3, 224, 224))"
   ]
  },
  {
   "attachments": {
    "img5.JPG": {
     "image/jpeg": "/9j/4AAQSkZJRgABAQEAeAB4AAD/4RDuRXhpZgAATU0AKgAAAAgABAE7AAIAAAAMAAAISodpAAQAAAABAAAIVpydAAEAAAAYAAAQzuocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFubmllIFN1cmxhAAAFkAMAAgAAABQAABCkkAQAAgAAABQAABC4kpEAAgAAAAM5NwAAkpIAAgAAAAM5NwAA6hwABwAACAwAAAiYAAAAABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAyMjowNjoxMyAxMTowMToxNAAyMDIyOjA2OjEzIDExOjAxOjE0AAAAQQBuAG4AaQBlACAAUwB1AHIAbABhAAAA/+ELHmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6ZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMjItMDYtMTNUMTE6MDE6MTQuOTY3PC94bXA6Q3JlYXRlRGF0ZT48L3JkZjpEZXNjcmlwdGlvbj48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0b3I+PHJkZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj48cmRmOmxpPkFubmllIFN1cmxhPC9yZGY6bGk+PC9yZGY6U2VxPg0KCQkJPC9kYzpjcmVhdG9yPjwvcmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0ndyc/Pv/bAEMABwUFBgUEBwYFBggHBwgKEQsKCQkKFQ8QDBEYFRoZGBUYFxseJyEbHSUdFxgiLiIlKCkrLCsaIC8zLyoyJyorKv/bAEMBBwgICgkKFAsLFCocGBwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKv/AABEIAKoCGgMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APpGiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKMj1oyPWgAooyPWjI9aACijI9aMj1oAKKMj1oyPWgAooyPWjI9aACijI9aMj1oAKKMj1oyPWgAooyPWjI9aACijI9aMj1oAKKMj1oyPWgAooyPWjI9aACijI9aMj1oAKKMj1oyPWgAooyPWjI9aACijI9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"
    }
   },
   "cell_type": "markdown",
   "id": "d3e676e7",
   "metadata": {},
   "source": [
    "<a id=\"4\"></a>\n",
    "##  4. Quantization Aware Training\n",
    "\n",
    "PTQ resulted in a ~4% accuracy drop. After PTQ is performed, sometimes the model may perform poorly by not retaining the accuracy as the process is not able to mitigate the large quantization error induced by low-bit quantization. This could happen if there are sensitive layers in the network, like the Depth wise convolutional networks, in MobileNets which are more susceptible to producing larger quantization error. \n",
    "\n",
    "This is when we might want to consider using QAT. The idea behind QAT is simple: you can improve the lost accuracy of the quantized model, if you had trained the model with quantization error. There are many ways of doing this, starting the training of the model from scratch or fine-tuning a pre-trained model. Whatever method you choose, the quantization error is induced in the training loss by inserting fake-quantization operations. The operation is called “fake” because we quantize the data and immediately perform a dequantize operation producing an approximate version of the data where both input and output still remain as floating point values. We are here trying to simulate the effects of quantization without changing much in the model. \n",
    "In the forward-pass, we fake-quantize the weights and activations and use these fake-quantized outputs to perform the layer operations.\n",
    "\n",
    "![img5.JPG](attachment:img5.JPG)\n",
    "\n",
    "In the backward pass, while calculating gradient, the quantization operation’s derivative is undefined at the step boundaries, and zero everywhere else. To handle this, QAT uses Straight-through Estimator by approximating the derivative to be 1 for inputs in the representable range. This estimator is essentially letting gradients pass as is through this operator in the backward pass. When the QAT process is done, the scales that were used to quantize the weights and activations are stored in the model and can be used for inference. \n",
    "\n",
    "We will be using the Pytorch Quantization toolkit, a toolkit built for training and evaluating PyTorch Models with simulated quantization.  \n",
    "\n",
    "`quant_modules.initialize()` will ensure quantized modules are called instead of original modules. For example, when you define a model with convolution, linear snd pooling layers, you will make a call to `QuantConv2d`, `QuantLinear` and `QuantPooling` respectively. `QuantConv2d` basically wraps quantizer nodes around inputs and weights of regular `Conv2d`. Please refer to all the <a href=\"https://github.com/NVIDIA/TensorRT/tree/master/tools/pytorch-quantization/pytorch_quantization/nn/modules\">quantized modules</a> in pytorch-quantization toolkit for more information. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "f1520afc",
   "metadata": {},
   "outputs": [],
   "source": [
    "quant_modules.initialize()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "ee09402f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# We define Mobilenetv2 again just like we did above\n",
    "# All the regular conv, FC layers will be converted to their quantized counterparts due to quant_modules.initialize()\n",
    "feature_extract = False\n",
    "q_model = models.mobilenet_v2(pretrained=True)\n",
    "set_parameter_requires_grad(q_model, feature_extract)\n",
    "q_model.classifier[1] = nn.Linear(1280, 10)\n",
    "q_model = q_model.cuda()\n",
    "\n",
    "# mobilenetv2_base_ckpt is the checkpoint generated from Step 2 : Training a baseline Mobilenetv2 model.\n",
    "ckpt = torch.load(\"./mobilenetv2_base_ckpt\")\n",
    "modified_state_dict={}\n",
    "for key, val in ckpt[\"model_state_dict\"].items():\n",
    "    # Remove 'module.' from the key names\n",
    "    if key.startswith('module'):\n",
    "        modified_state_dict[key[7:]] = val\n",
    "    else:\n",
    "        modified_state_dict[key] = val\n",
    "\n",
    "# Load the pre-trained checkpoint\n",
    "q_model.load_state_dict(modified_state_dict)\n",
    "optimizer.load_state_dict(ckpt[\"opt_state_dict\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "b8726956",
   "metadata": {},
   "outputs": [],
   "source": [
    "def compute_amax(model, **kwargs):\n",
    "    # Load calib result\n",
    "    for name, module in model.named_modules():\n",
    "        if isinstance(module, quant_nn.TensorQuantizer):\n",
    "            if module._calibrator is not None:\n",
    "                if isinstance(module._calibrator, calib.MaxCalibrator):\n",
    "                    module.load_calib_amax()\n",
    "                else:\n",
    "                    module.load_calib_amax(**kwargs)\n",
    "    model.cuda()\n",
    "\n",
    "def collect_stats(model, data_loader, num_batches):\n",
    "    \"\"\"Feed data to the network and collect statistics\"\"\"\n",
    "    # Enable calibrators\n",
    "    for name, module in model.named_modules():\n",
    "        if isinstance(module, quant_nn.TensorQuantizer):\n",
    "            if module._calibrator is not None:\n",
    "                module.disable_quant()\n",
    "                module.enable_calib()\n",
    "            else:\n",
    "                module.disable()\n",
    "\n",
    "    # Feed data to the network for collecting stats\n",
    "    for i, (image, _) in tqdm(enumerate(data_loader), total=num_batches):\n",
    "        model(image.cuda())\n",
    "        if i >= num_batches:\n",
    "            break\n",
    "\n",
    "    # Disable calibrators\n",
    "    for name, module in model.named_modules():\n",
    "        if isinstance(module, quant_nn.TensorQuantizer):\n",
    "            if module._calibrator is not None:\n",
    "                module.enable_quant()\n",
    "                module.disable_calib()\n",
    "            else:\n",
    "                module.enable()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "da627181",
   "metadata": {},
   "outputs": [],
   "source": [
    "#Calibrate the model using percentile calibration technique.\n",
    "with torch.no_grad():\n",
    "    collect_stats(q_model, train_dataloader, num_batches=32)\n",
    "    compute_amax(q_model, method=\"max\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bcc10e0f",
   "metadata": {},
   "source": [
    "Usually the finetuning of QAT model should be quick compared to the full training of the original model. For this Mobilenetv2 model, it is enough to finetune for 2 epochs to get acceptable accuracy. \n",
    "\n",
    "<a href=\"https://github.com/NVIDIA/TensorRT/blob/8.0.1/tools/pytorch-quantization/pytorch_quantization/tensor_quant.py\">tensor_quant function</a> in `pytorch_quantization` toolkit is responsible for the above tensor quantization. Usually, per channel quantization is recommended for weights, while per tensor quantization is recommended for activations in a network.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "dc144132",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: [    1 /     2] LR: 0.001000\n",
      "Batch: [  100 |   295] loss: 1.762\n",
      "Batch: [  200 |   295] loss: 1.771\n",
      "Test Loss: 0.02704 Test Acc: 73.74%\n",
      "Epoch: [    2 /     2] LR: 0.001000\n",
      "Batch: [  100 |   295] loss: 1.769\n",
      "Batch: [  200 |   295] loss: 1.774\n",
      "Test Loss: 0.02702 Test Acc: 73.54%\n",
      "Checkpoint saved\n"
     ]
    }
   ],
   "source": [
    "# Finetune the QAT model for 2 epochs\n",
    "num_epochs=2\n",
    "lr = 0.001\n",
    "for epoch in range(num_epochs):\n",
    "    print('Epoch: [%5d / %5d] LR: %f' % (epoch + 1, num_epochs, lr))\n",
    "\n",
    "    train(q_model, train_dataloader, criterion, optimizer, epoch)\n",
    "    test_loss, test_acc = evaluate(q_model, val_dataloader, criterion, epoch)\n",
    "\n",
    "    print(\"Test Loss: {:.5f} Test Acc: {:.2f}%\".format(test_loss, 100 * test_acc))\n",
    "\n",
    "save_checkpoint({'epoch': epoch + 1,\n",
    "                 'model_state_dict': q_model.state_dict(),\n",
    "                 'acc': test_acc,\n",
    "                 'opt_state_dict': optimizer.state_dict()\n",
    "                },\n",
    "                ckpt_path=\"mobilenetv2_qat_ckpt\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "70bdaeed",
   "metadata": {},
   "source": [
    "As you can see, accuracy recovered by ~2%. Fine-tuning for more epochs with learning rate annealing can improve accuracy further. It should be noted that the same fine-tuning schedule will improve the accuracy of the unquantized model as well. Please refer to <a href=\"https://developer.nvidia.com/blog/achieving-fp32-accuracy-for-int8-inference-using-quantization-aware-training-with-tensorrt/\">Achieving FP32 Accuracy for INT8 Inference Using Quantization Aware Training with NVIDIA TensorRT</a> for detailed recommendations.\n",
    "\n",
    "During inference, we use `torch.fake_quantize_per_tensor_affine` and `torch.fake_quantize_per_channel_affine` to perform quantization as this is easier to convert into corresponding TensorRT operators. \n",
    "\n",
    "Let us now prepare this model to export it into TorchScript. Setting `quant_nn.TensorQuantizer.use_fb_fake_quant = True` enables the QAT model to use `torch.fake_quantize_per_tensor_affine` and `torch.fake_quantize_per_channel_affine` operators instead of `tensor_quant` function to export quantization operators. In torchscript, they are represented as `aten::fake_quantize_per_tensor_affine` and `aten::fake_quantize_per_channel_affine`. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "a234bb71",
   "metadata": {},
   "outputs": [],
   "source": [
    "quant_nn.TensorQuantizer.use_fb_fake_quant = True\n",
    "with torch.no_grad():\n",
    "    data = iter(val_dataloader)\n",
    "    images, _ = data.next()\n",
    "    jit_model = torch.jit.trace(q_model, images.to(\"cuda\"))\n",
    "    torch.jit.save(jit_model, \"mobilenetv2_qat.jit.pt\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "13c5b2c9",
   "metadata": {},
   "outputs": [],
   "source": [
    "#Loading the Torchscript model and compiling it into a TensorRT model\n",
    "qat_model = torch.jit.load(\"mobilenetv2_qat.jit.pt\").eval()\n",
    "compile_spec = {\"inputs\": [torch_tensorrt.Input([64, 3, 224, 224])],\n",
    "                \"enabled_precisions\": torch.int8\n",
    "               }\n",
    "trt_mod = torch_tensorrt.compile(qat_model, **compile_spec)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "b465044d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mobilenetv2 QAT accuracy using TensorRT: 74.00%\n",
      "Average batch time: 2.18 ms\n"
     ]
    }
   ],
   "source": [
    "#Evaluate and benchmark the performance of the QAT-TRT model (TRT INT8)\n",
    "test_loss, test_acc = evaluate(trt_mod, val_dataloader, criterion, 0)\n",
    "print(\"Mobilenetv2 QAT accuracy using TensorRT: {:.2f}%\".format(100 * test_acc))\n",
    "benchmark(trt_mod, input_shape=(64, 3, 224, 224))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "20c82807",
   "metadata": {},
   "source": [
    "Compared to the TRT FP32 model, we observe a speedup of ~3x  with only a ~1.6% loss in accuracy. "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "52f311fb",
   "metadata": {},
   "source": [
    "### Conclusion\n",
    "We put together all the observations that were made in this notebook. Note that, these numbers can vary with every run due to the stochastic nature of the training process, but a similar pattern can still be noticed.\n",
    "\n",
    "| Model                    | Accuracy | Performance |\n",
    "| ------------------------ | -------- | ----------- |\n",
    "| Baseline MobileNetv2    | 75.56%   | 11.92ms     |\n",
    "| Base + TRT<br>(TRT FP32) | 75.59%   | 6.78ms      |\n",
    "| PTQ + TRT<br> (TRT int8) | 71.41%   | 1.57ms      |\n",
    "| QAT+TRT<br>(TRT INT8)    | 74.00%   | 2.18ms      |"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "91dfc2c1",
   "metadata": {},
   "source": [
    "<a id=\"7\"></a>\n",
    "##  7. References\n",
    "* <a href=\"https://arxiv.org/pdf/1409.1556.pdf\">Very Deep Convolution Networks for large scale Image Recognition</a>\n",
    "* <a href=\"https://developer.nvidia.com/blog/achieving-fp32-accuracy-for-int8-inference-using-quantization-aware-training-with-tensorrt/\">Achieving FP32 Accuracy for INT8 Inference Using Quantization Aware Training with NVIDIA TensorRT</a>\n",
    "* <a href=\"https://github.com/NVIDIA/TensorRT/tree/master/tools/pytorch-quantization\">Pytorch-quantization toolkit from NVIDIA</a>\n",
    "* <a href=\"https://docs.nvidia.com/deeplearning/tensorrt/pytorch-quantization-toolkit/docs/userguide.html\">Pytorch quantization toolkit userguide</a>\n",
    "* <a href=\"https://arxiv.org/pdf/2004.09602.pdf\">Quantization basics</a>"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.0"
  },
  "vscode": {
   "interpreter": {
    "hash": "b8290132a159428f0004735847c0b4016c8a5153e62fd80cc71ad5cd485f05b0"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
